c 指针学习记录

本文通过几个示例探讨了C语言中指针的基本使用方法及其潜在的风险,包括正确初始化指针、修改指针所指向的内容以及操作字符串等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前在学校,没有把C语言学好,最近想下定决心学好,把学习过程中遇到的问题做下记录。

c语言中,指针的操作是很灵活,很强大的,极容易犯错。而避免犯错的方式,是把所有错误都犯一次。嘿嘿,当然这句话你不能用在生活中....

#include <stdio.h>

void pass(){
 int number = 20;
 int *n;

 n = &number;

 *n = 40;

 printf("n=%d\n", *n);
}

void error(){
 int number =20;
 int *p;

 *p = 30; //指针没有指向具体的内存之前,这种赋值是不行的。但不明白的是为什么执行了pass方法后就可以了
 printf("p=%d\n", *p);
}

void str(){
 char *p;
 p="asdf";

 p="hello world!";

 // p[0] = 't'; // 指针地址没有赋值,操作字符出错

 printf("%s\n", p); 
}

void str_1(){
 char *pr;
 char str[] = "test";

 pr = str;

 pr[0] = 'h'; // 指针指向了字符变量地址,可以操作字符

 printf("%s\n", pr);
}

int main(void)
{
 pass();
 error(); //不执行pass方法,这里会引起内存错误
 str(); 
 str_1();

 return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值