欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c 指针学习记录

程序员文章站 2022-07-09 21:46:25
...

以前在学校,没有把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;

}