首页
学习
活动
专区
圈层
工具
发布

指针2——C语言

形参用字符指针变量接收arr,count作为计数器,记录字符个数,当记录到’\0'时,循环停止,返回count;  二,使用指针访问数组 1.1一维数组 int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10...代码展示: int main() { int arr[10]={1,2,3,4,5,6,7,8,9,10}; int (*p)[10]=&arr; for(int i=0;i<10;i...int a=10; int* p1=&a; int** p2=&p1; 对指针变量p2来说,它先于*结合,证明他是一个指针,再与int*结合,证明它所指向的对象是整形指针类型,是一个二级指针。...int* arr[10];//arr先于[10]结合,说明它是一个数组,再与int*结合,说明它的元素类型是int* 指针数组模拟二维数组  这里,arr1就是一维数组arr1首元素地址, 同理,arr2,...int arr1[3]={1,2,3}; int arr2[3]={2,3,4}; int arr3[3]={3,4,5}; int *arr[3]={arr1,arr2,arr3};

10310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言——指针(2)

    我们可以看到在main函数内部,创建了a和b,a的地址是0x009af998,b的地址是0x009af98c,在调用Swap函数时,将a和b传递给了Swap函数,在Swap函数内部创建了形参x和y接收a...* pc = &c;//字符指针 printf("%c\n", *pc);//字符指针解引用 return 0; } 字符指针只有一种使用方式吗?...正确形式: #include int main() { char* pc = "abcdef"; printf("%c\n", *pc); printf("%c\n", *(pc...我们一起来看看: C/C++会把常量字符串存储到单独的⼀个内存区域,我们知道常量字符串是不可以被修改的,既然不可以被修改,那么内容相同的常量字符串只需要保存一次就好了,当⼏个指针指向同⼀...; int* pc = &c;*/ int* p[3] = { &a,&b,&c }; //下标 0 1 2 int i = 0; for (i = 0; i < 3; i

    76710

    初识C语言·2

    一个整型占4个字节,短整型占2个字节,长整型占8或者4个字节,更长的整型占8个字节。 有人就问了,欸long为什么是两种情况,这是因为C语言中规定占字节数long>=int,取决于多少位系统。...相信不少刚接触C语言的认为答案是1.5,那么结果是否如此呢?...当然,也可以进行连续赋值,如: int a = 1; int b = 2; int c = 0; c = b = a+3;//连续赋值,从右向左依次赋值 C语言支持这种写法,但是这种代码不易理解,所以建议拆开写...复合赋值符 写代码的时候我们经常会对一个数进行自增自减的操作,如下 int a = 0; int b = 0; a = a+3; b = b-2; C语言中提供了更加方便的写法 int a = 18;...三目操作符,即是有三个操作数的,在C语言中有且仅有一个三目操作符, 实现代码是 (exp1 ? exp2:exp3)exp是表达式的意思。

    43110

    初识C语言(2)

    while(line<=20000) { line++; printf("我要继续努力敲代码\n"); } if(line>20000) printf("好offer\n"); return 0; } 6C语言中如何实现循环呢...C语言中给了数组的定义:一组相同类型元素的集合 8.1数组定义 数组的作用就是存放一组相同类型的数,[]里面是数组的大小,10表示这个数组可以存放10个元素,arr是数组名,int是表示这个数组是整形数组...int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素 8.2数组的下标 C语言规定:数组的每个元素都有一个下标,下标是从0开始的。...在C语言中,0表示假,非0表示真。&和*我们讲指针时再讲。·~后期讲。 !就可以把真假互换。  sizeof可以计算类型大小。...感谢大家的阅读,下期我们将结束初识C语言,让我们下期再见。

    29210

    c语言进阶(2)

    类型在c语言中为什么有这么多种?因为应用场景不同,解决应用场景应对方式不同,需要空间的大小也不同。 sizeof不仅可以求内置类型,还能够求自定义类型。...char c=0这样写是没有问题的,但是不便于用户理解。...那么,我们就理解了,对于多少位,应该是这样一个范围: 那么,就让我们根据一些练习题练习一下,看看是否掌握了吧 int i=-20,等于2的4次方+2的2次方,因为都是4个字节,所以都是32个比特位。...3次方+2的1次方     0000  0000  0000  0000   0000   0000  0000 1010 +  1111   1111   1111   1111   1111   ...所以c99当中的bool类型可移植性较好。 运行下面这个程序: 我们会发现输出结果是1 2 3。 第一种比较方法不推荐,因为我们会误认为是整数比较。第二种方法也不推荐,false只有C99支持。

    25610

    C语言基础(2)

    数据类型;常量,变量 数据类型 c语言如何描述:常量——不能改变的量;                             变量——能被改变的量 定义变量的方法  #下表为定义整型变量的示范案例,最终执行结果为...#include int main() { int age=20; age=age+2; printf("%d\n",age); return 0; } 打印时需注意:1....打印整型——%d                           2.打印单精度浮点型(float)——%f                            3.打印双精度浮点型(double...2.全局变量的作用域的是整个工程。 生命周期:变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。                ...2.全局变量的生命周期是:整个程序的生命周期。

    24910

    C语言入门笔记2

    先说一下C语言中的运算是什么?C语言中的运算就是对数据进行操作、处理的过程。那么运算符又干什么的呢?运算符就是指定该运算的处理方式。 那么C语言中又有哪些运算符呢?...如下所示: ※ 算术运算符 ※ 赋值运算符 ※ 关系运算符 ※ 逻辑运算符 ※ 三目运算符 2、算术运算符 C语言基本算术运算符如下表: ?...那么C语言中的赋值运算符又是什么呢?...那么上面所说的能不能在C语言中表示出来呢?当然是可以了,不过C语言中,需要用到一个符号,这个符号就是三目运算符。 C语言中的三目运算符:“?:”,其格式为: 表达式1 ?...解析:C语言中运算符中最高等级的为(),因此执行过程为: 1、先计算a>3和a+3的结果,计算后算式为1*a-14%3; 2、再计算1*a和14%3的结果,计算后算式为11-2; 3、最后算出结果为9。

    1.3K10

    【C语言进阶】指针2

    需要注意的是,这个操作只能在.c文件下操作。...2.const修饰指针 const修饰指针有两种情况,const可以放在*号的左边,也可以放在*号的右边,意义是不一样的 1.const放在*号的左边: 当我们编写这样的代码并进行编译的时候,编译器会报这样的错误...2.const放在*号右边 编写如上图代码时,编译器又会报错,这时候就告诉我们,此时指针变量pa存放的地址是不能被修改的,就是pa不能存放其他变量的地址,但是*pa的值可以被修改: 综上: 当cosnt... int main() { int *p; //指针没有初始化,没有具体指向的对象,系分配随机值,这就是野指针 *p = 20; return 0; } 2....2.传址调用和传值调用 传址调用和传址调用,顾名思义就是,一个传地址,一个传数值。这两者有什么区别呢?

    6910

    C语言深度剖析(2)

    ; 3.条件语句 在C语言里面,我们可以把我们想要注释掉的语句放到if(0)里面,这样同样可以实现语句的注释的功能,因为在C语言里面1是真的,0是假的,如果是if(0),这样就不会执行大括号里面的语句;...但是我们不建议这样做,我们仅仅需要看懂别人的这种写法; 4.布尔类型 true表示真值,false表示假的,在我们的书里面,大部分使用的是C89,C90的版本,所以并没有提及到,实际上在C99标准里面,...,有的平台可以正常运行,有的平台就不支持,因此,我们并不推荐微软的这套写法;其实布尔类型的本质和我们的C语言里面的0表示假,1表示真是一样的效果; 这个类型的使用需要包含我们的头文件stdbool.h;...C语言里面的返回值可以不带类型,默认的是int类型,但是我们还是要写的,防止阅读我们的代码的人理解错误:是忘记返回值的类型,还是使用的默认的返回值的类型,为了避免这样的模棱两可的情况,我们应当写上返回值的类型...这个函数不需要进行传参; (5)void*可以用来定义变量,void*是指针,指针的大小是明确的,就是4/8个字节;void*可以被任何类型的指针接受,也可以接受任何类型的指针(通用接口,例如我们常见的内存函数),但是在C语言里面

    16700

    C语言 | 基础总结 (2)

    最 好的安排是在某个相关的 .c 文件中定义, 然后在头文件 (.h) 中进行外部声明, 在需 要使用的时候, 只要包含对应的头文件即可。...定义变量的 .c 文件也应该包含该头 文件, 以便编译器检查定义和声明的一致性。这条规则提供了高度的可移植性: 它和 ANSI C 标准一致, 同时也兼容大多 数 ANSI 前的编译器和连接器。...Unix 编译器和连接器通常使用 “通用模式” 允许 多重定义, 只要保证最多对一处进行初始化就可以了; ANSI C 标准称这种行为为 “公共扩展”, 没有语带双关的意思。...特 别是, 永远不要把外部函数的原型放到 .c 文件中: 通常它与定义的一致性不能得 到检查, 而矛盾的原型比不用还糟糕。 有时候,正是那些意想不到之人,成就了无人能成之事。 ——图灵

    7153229

    C语言---深入指针(2)

    int arr[]) { int sz2 = sizeof(arr) / sizeof(arr[0]); printf("sz2=%d", sz2); } int main() {...//假设是9 8 7 6 5 4 3 2 1 0, //而9和相邻的数换位置要换9次,换完位置就是这样的 //8 7 6 5 4 3 2 1 0 9 //9已经换好了,可以不用动了...在C语言中,int*arr[5] 声明了一个包含5个元素的数组,每个元素都是一个指向int类型数据的指针。这个数组可以存储指向整数的指针,可以是指向整数变量的指针,也可以是指向整数数组的指针。...int*arr[5] 还可以用于指向整数数组的指针,例如: int array1[3] = {1, 2, 3}; int array2[3] = {4, 5, 6}; int* arr[2] = {...array1, array2 }; 在这个例子中,arr数组的元素arr[0]和arr[1]分别指向array1和array2这两个整数数组的首地址。

    26210
    领券