strlen(x) 返回 size_t 类型,size_t是 unsigned int 类型,所以 strlen(x)-strlen(y) 返回 unsigned int 始终 >=0

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <string.h>
void main()
{
char *sa="sdhshdh";
char *sb="cdehhhhsdssssd";
printf("%d , %d \n",strlen(sa),strlen(sb));
     
if(strlen(sa)-strlen(sb)>=0)
{
    printf("run 1\n");
}
}

如果不加 include <string.h>头文件

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
void main()
{
char *sa="sdhshdh";
char *sb="cdehhhhsdssssd";
printf("%d , %d \n",strlen(sa),strlen(sb));
     
if(strlen(sa)-strlen(sb)>=0)
{
    printf("run 1\n");
}
}
1
warning C4013: 'strlen' undefined; assuming extern returning int

2可变参数列表

要用到 stdarg 宏

3数组名

数组名是一个常数指针,在两种情况下数组名不用 指针常数表示

  1. sizeof sizeof返回整数数组的长度

  2. & 是指向数组的指针,而不是指向指针常量的指针。

1
2
3
4
5
6
#include <stdio.h>
void main()
{
int a[4]={1,1,1,1};
printf("%d \n",sizeof(a));
}

并不是 4(指针常量的长度)

1
2
3
4
5
6
7
8
#include <stdio.h>
void main()
{
int a[4]={1,1,1,1};
int *b;
b=a;
printf("%d \n",b[2]);
}

数组对数组赋值的方法:利用循环(已经有了数组,对数组进行更新)

利用指针变量。

不能这样写

1
2
3
int a[4]={1,1,1,1};
int b[4];
b=a;

因为 b为指针常量不能赋值。

4下标引用,和间接引用

1
2
3
4
5
6
7
#include <stdio.h>
void main()
{
int a[4]={1,2,3,4};
printf("%d \n",*(a+2));
printf("%d \n",a[2]);
}

负值下标

1
2
3
4
5
6
7
8
9
#include <stdio.h>
void main()
{
int a[4]={1,2,3,4};
int *p;
p=a+2;
printf("%d \n",*(a+1));
printf("%d \n",p[-1]);
}

下标引用可以作用于任何指针

1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <math.h>
void main()
{
int a[4]={1,2,3,4};
printf("a[0]->%d \n",a[0]);
printf("1[a]->%d \n",1[a]);
printf("a[1]->%d \n",a[1]);
}

c 函数及指针学习 3的更多相关文章

  1. C函数及指针学习1

    1 大段程序注释的方法 #if 0#endif 2三字母词 以两个问号 开始的都要注意 3 字面值(常量) 在整型号字面值后加 字符L (long),U(unsigned)说明字符常量 为长整型 或( ...

  2. c 函数及指针学习 10

    标准库函数 1算数运算stdlib.h 2随机数stdlib.h 3字符串转化stdlib.h 4数学函数 math.h 5日期和时间 time.h 6信号 signal.h 7打印可变参数列表std ...

  3. c 函数及指针学习 9

    指针的高级应用 处理命令行参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <stdio.h>   int main(int ar ...

  4. c 函数及指针学习 7

    1.结构的存储分配 1 2 printf("%d \n",sizeof(char)); printf("%d \n",sizeof(int)); int 类型为 ...

  5. c 函数及指针学习 5

    聚合数据类型 能够同时存储超过一个的单独数据. c语言提供了数组和结构体. 1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h> # ...

  6. c 函数及指针学习 4

    1数组和指针声明的差别 声明数组:为数组分配内存,为数组名分配内存(指针常量 4个字节) 指针:为指针分配内存(指针变量 4个字节) 1 2 3 4 5 6 7 8 9 10 #include < ...

  7. C函数及指针学习2

    1.break  永久终止循环,continue 结束当前循环 2.switch 每个case标签要有唯一值,(且为常量或常量表达式) 不加break 时执行流会贯穿整个case 标签 3 赋值操作符 ...

  8. c 函数及指针学习 8

    联合体 1 2 3 4 5 6 7 8 9 10 11 12 13 #include <stdio.h>   union sa     {     double a;     int b; ...

  9. c 函数及指针学习 6

    不完整声明 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 /* 方法一   */ struct tag_a{ ...

随机推荐

  1. ASP.NET MVC学习之控制器篇(二)

    原文链接:http://www.asp.net/learn/mvc/ 这篇教程探索了ASP.NET MVC控制器(controller).控制器动作(controller action)和动作结果(a ...

  2. (DFS)hdoj1175:连连看

    题目链接 这道题被稍微改编当作过去年的期末上机题,也被直接放到了这次这一届的第二次练习赛.当初刚看到这道题时DFS并没有系统的学过,做起来极其费劲.现在学过之后开始实践练习,发现这道题真的是很水. 我 ...

  3. UVA 10970-Big Chocolate

    题目: 给你一块M*N的巧克力,问把它切成最小单元需要最少切几刀,分开的就不能一起切了. 分析: 每次切割只能多产生一个部分,分成M*N个部分,必然要切M*N-1刀. 一个长为m宽为n的长方形和m*n ...

  4. iOS 下如果存在UIScrollerView 使用UIScreenEdgePanGestureRecognizer实现侧滑效果失效的问题

    当你在使用UIScreenEdgePanGestureRecognizer手势实现侧滑的时候,如果后期你导航控制器push出的界面中包含UIScrollerView,这个时候你会发现,侧滑效果无法实现 ...

  5. 移动设备和SharePoint 2013 - 第4部分:定位

    博客地址:http://blog.csdn.net/foxdave 原文地址 在该系列文章中,作者展示了SharePoint 2013最显著的新功能概观--对移动设备的支持. 该系列文章: 移动设备和 ...

  6. SharePoint表单和工作流 - Nintex篇(三)

    博客地址 http://blog.csdn.net/foxdave 接上篇点击打开链接 跳转到网站设置的Nintex设置,我们来挨个了解一下,这里面一共有15项设置,本篇我们先了解前7个. " ...

  7. EAX、ECX、EDX、EBX寄存器的作用

    注意:在计算加法时,实在32位的累加器上进行,并注意类型之间的转换,数据的截取问题 一般寄存器:AX.BX.CX.DXAX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器 索引暂存器 ...

  8. 将Ajax 中数组转换成字符串 封装成类

    <?php class Ajax{ //ajax调用的方法 //sql是要执行的语句 //$type是SQL语句的类型,0代表增删改,1代表查询 //$db代表要操作的数据 public fun ...

  9. XCode之entitlement

    entitlement是codesign的一个输入,参见:codesign. entitlement的意思是权力,也就是表明应用所具有的权利,可以访问什么,不能访问什么等.这些信息会在codesign ...

  10. hdu4283 区间dp

    //Accepted 300 KB 0 ms //区间dp //dp[i][j] 表示i到j第一个出场的最小diaosizhi //对于i到j考虑元素i //(1)i第一个出场,diaosizhi为 ...