<!--打赏 End-->

C语言指针笔记

;笔记1:
#include <stdio.h> #include <stdlib.h> int main(void) { //申明结构体类型 struct book{ int price;//价格 char *name;//书名 char *nr[50];//描述 }; struct book book1 = { 20,"调皮翻蛮的辣条","辣条的未解之谜1" }; struct book book2 = { 23,"西游记","西天取经" }; struct book book3 = { 23,"聊斋","鬼怪传说" }; printf("书名: %s\t价格: %d\t描述: %s\n",book1.price,book1.name ,book1.nr ); printf("书名: %s\t价格: %d\t描述: %s\n",book1.price,book1.name ,book1.nr ); printf("书名: %s\t价格: %d\t描述: %s\n",book1.price,book1.name ,book1.nr ); puts("===========结构体指针==========="); struct book *pb = &book1; printf("书名: %s\n",book1.name ); printf("书名: %s\n",pb->name); struct book array[3]={ {12,"天外飞仙","d1"}, {12,"水浒传","d2"}, {12,"变形金刚","d3"} }; int i; for(i = 0;i<3;i++){ printf("书名: %s\n",array[i].name); } puts("===========结构体指针==========="); struct book book22 = { 30,"小说","修仙" }; int * pp = &book22; printf("book22的地址%d",&book22); printf("pp的值%d",pp); printf("%d\t%s",array[0].price,array[0].name,array[0].nr); return EXIT_SUCCESS; }

  数组:

#include <stdio.h>
#include <stdlib.h>
int main(void){
	int array[10] = {1,2,3};//定义数组
	int *p = array;      //取地址
	int *p2 = &array;     //取地址
	int *p3 = &array[0];    //取地址
	//三种指针效果相同
	printf("%d\n%d\n%d\n",p,p2,p3);
	//指针运算  需要根据指针的类型来运算
	int *p4 = (array+1);    //加1,单片机和电脑不一样,单片机加2,电脑是加4的。
	printf("%d\n",p4);
	int *p5 = (array+2);
	printf("%d\n",p5);
printf("-----------\n");
	double dd[10] = {1,2,3,4,5,6,7,8,9,10};
	printf("%d\n",dd);
	printf("%d\n",dd+1);    //地址加8
	printf("%d\n",dd+2);
}

  笔记2:

int main() {
	int i=10;//定义一个整型变量i
	int *p;//声明了一个指向整型的指针

	p=&i;//&i代表i的地址,把i的地址赋给执针p

	printf("%d\n",*p);//*p代表指针p所指的变量,就是i
	(*p)++;      //由于++运算符的优先级,比指针运算符的高,一定给"*p加括号

	printf("%d\n",i);
	return 0;
}

  

枚举:

enum Color{
	//各个枚举项可以独立赋值
	RED =2,BLUE,YELLOW =10
};
int main(void) {
	//枚举的指默认从0开始,逐渐加1
	//直接使用枚举内容,不需要用名字(出来)
	printf("%d\t%d\t%d\n",RED,BLUE,YELLOW);
	return EXIT_SUCCESS;
}

  

 

posted on 2017-08-22 20:37  任汉彬  阅读(288)  评论(0)    收藏  举报

导航