指针
dsx08
研0 北斗定位小趴菜
展开
-
PTA之指针错误
1.以下正确的说明语句是(D )。A.int *b[ ] = {1, 3, 5, 7, 9};B.int a[ ] = {1, 3, 5, 7, 9}; int *num[5] = {a[0], a[1], a[2], a[3], a[4]};C.int a[3][4], (*num)[4]; num[1] = &a[1][3];D.int a[5], *num[5] = {&a[0], &a[1], &a[2], &a[3],原创 2021-10-02 11:26:56 · 1355 阅读 · 0 评论 -
函数指针(就做个笔记)
1,函数的地址#include <stdio.h>int main(){ int i=0; printf("main=%p\n",main); printf(" i=%p\n",&i);}输出:main=0000000000401530 i=000000000062FE1C2,函数指针的定义类型名 (*变量)(参数类型);#include <stdio.h>void f(){ printf("in f()\n");.原创 2021-09-27 20:55:50 · 68 阅读 · 0 评论 -
编译预处理
#开头,编译预处理指令。 不是C的语言 #define定义一个宏1,宏的定义#define宏名 宏的值 //值可以是任意的#include <stdio.h>#define P printf("你好\n")#define wenzi "哈哈哈\n"#define num 5int main(){ P; printf(wenzi); printf("%d",num+2); return 0;}输出:你好哈哈哈72,宏的...原创 2021-09-20 20:58:27 · 531 阅读 · 0 评论 -
PTA ---结构错题汇总
1,struct stu{ int x; int *y;} *p;int dt[4] = {10, 20, 30, 40};struct stu a[4] = {50, &dt[0], 60, &dt[1], 70, &dt[2], 80, &dt[3]};int main( ){ p=a; printf("%d,", ++p->x); //p->x 值为50,之后++50==51 printf("%d,", (++原创 2021-09-17 21:06:22 · 2140 阅读 · 0 评论 -
类型定义
1,自定义数据类型(typedef)声明一个已有数据类型的新名字(1)普通类型的自定义#include <stdio.h>int main(){ typedef int Date; Date a; //int a ----> Date a return 0;}(2)结构类型的自定义//第一种方法#include <stdio.h>typedef struct pupil{ int year; int month;}原创 2021-09-15 21:49:50 · 613 阅读 · 0 评论 -
结构与函数、数组
1,结构作为函数参数例子(以int函数为主): int函数名 (struct date d)整个结构可以作为参数的值传入函数 新建一个结构变量,并复制调用者的结构的值2,输入\出结构(1)输入结构 方法一在这个传入函数中,创建一个临时的结构变量,然后把这个结构返回调用者#include <stdio.h>struct number{ int x; int y; int z;};struct number getStructure(void);int m..原创 2021-09-14 22:18:42 · 183 阅读 · 0 评论 -
C语言 结构
1,结构类型声明和本地变量一样,在函数内部声明,只能在函数内部使用 一般放在main( )函数之前struct结构名字{ int x; int y;};struct point{ int x; int y;};//声明了一种结构struct point{ int x; int y;}p1,p2;//声明了一种结构,并且定义了p1,p2结构变量struct { int x; int y;...原创 2021-09-14 20:51:47 · 2190 阅读 · 0 评论 -
C语言 枚举
1,定义用户定义的数据类型enum枚举类型的名字 {名字0,名字1,名字2......,名字n}//常量符号,类型int,值从0到nenum color {red=1,blue,green=5,yellow}//blue值为2 green值为5 yellow值为62,使用(1)函数中enum color {red,blue,yellow}void f(enum color c)(2)定义类型enum color t=red枚举可...原创 2021-09-14 19:55:44 · 639 阅读 · 0 评论 -
PTA---指针错误汇总(就自己做个笔记)
对于以下程序段,则叙述正确的是(A )。char s[ ]="china"; char *p; p = s;A.*p与s[0]相等B.s和p完全相同C.数组s的长度和p所指向的字符串长度相等D.数组s中的内容和指针变量p中的内容相等A. *p='c' s[0]='c'B. s是数组,p是指针,两者不一样C.p所指向的字符串长度(b不包括'\0'), s的长度=字符串长度+1D. 数组s内容包括有\0',p只是一个地址void f(int *...原创 2021-09-12 12:29:46 · 1404 阅读 · 0 评论 -
字符串函数
#include <string.h>1,strlen( )strlen(const char*s); //里面的参数是 指针/数组返回字符串长度(不包括'\0')2,strcmp( )strcmp(const char* s1,const char* s2)比较两个字符串大小(依次比较)(按ASCII码比较)返回值 关系 0 s1==s2 1 s1>s2 -1 s1<s2 //当相等时#inclu...原创 2021-09-10 21:41:33 · 142 阅读 · 0 评论 -
字符串数组(就自己做个笔记)
char **a; //a是一个指针,指向另一个指针char ch1[]="abc";char ch2;scanf("%c",&ch2)printf("%s %c",ch1,ch2);%s是字符串,字符串必须用""双引号,必须有\0结尾%c是单个字符,用%c,%s输入的话,\0没地方存。1,char a[ ][10]a[0]---->char[10]include <stdio.h>int main(){ ...原创 2021-09-09 22:40:11 · 87 阅读 · 0 评论 -
动态内存分配
1,内存分配#include <stdlib.h>int *a=(int*)malloc(n*sizeof(int));malloc(n*sizeof(int)) //n是元素个数,此语句表示申请空间(以字节为单位)void* bint* aa=malloc(100*1024*1024) //向系统申请空间,返回的是 void*,所以需要转换一下b=(int*)malloc(100*1024*1024) //转换为int*,之后b就可以当作整型数组使用了2,可..原创 2021-09-09 21:24:09 · 302 阅读 · 0 评论 -
指针运算(自己做个笔记)
1,指针+1 地址变化#include <stdio.h>int main(){ int a[]={0,1,2,3,4,5,6}; int *p=a; int *p1=p+1; printf("p = %p\n",p); printf("p1 = %p",p1); return 0;} 输出:p = 000000000062FDF0p1 = 000000000062FDF4相差4个字节,也就是 指针+1==指针内存地址+sizeof(指针类型)2,指针+1.原创 2021-09-06 22:58:15 · 1475 阅读 · 0 评论 -
C语言指针(就做个笔记)
一、取地址运算1.sizeof()函数用于求 变量或数据类型所占字节数#include <stdio.h>int main(){ int num_1,num_2,a; a=2; num_1=sizeof(int); num_2=sizeof(a); printf("int所占字节数为%d\n",num_1); printf("整型a所占字节数为%d",num_2); return 0;}输出:int所占字节数为4整型a所占字节数为42.&原创 2021-08-30 20:40:47 · 151 阅读 · 0 评论 -
指针与const
1,int *const a=&i一旦得到某个变量的地址,不能再指向其他变量。a的值不能被改变,也就是i的地址不能被改变a++ (X)*a=26 //OK2,const int* p=&i表示不能通过这个指针修改变量的值*p=26(X)p=&j //OKi=27 //OK判断指针与const属于何种关系,根据const在 * 前后判断const int *p1=&i // 不能通过指针改变变量的值...原创 2021-09-06 21:47:28 · 148 阅读 · 0 评论