美文网首页
重温C语言(3)之基础语法一笔过

重温C语言(3)之基础语法一笔过

作者: Afra55 | 来源:发表于2020-02-09 10:13 被阅读0次

原文:https://mp.weixin.qq.com/s/hhkKIc_0LghYLhdhFZzQgg

重温不是新学,在多年开发经验的基石下,常识性概念会一笔而过。

一 字符串

字符串是一个或多个字符的序列,被双括号括起来:
"我是字符串"

字符串被存储在char类型的数组中。

空字符:\0

C 语言的字符串一定是以空字符结束的。

//
// Created by Victor on 2019/10/22.
//

#include <stdio.h>
#include <string.h>
#define HAPPY "欢迎你的光临"

int main() {

    char name[40];
    printf("你叫什么名字呢?\n");
    scanf("%s", name);
    printf("你好, %s, %s\n", name, HAPPY);

    printf("name 存储了多少个字符? %zd", strlen(name));
    return 0;
}
你叫什么名字呢?
Victor yang
你好, Victor, 欢迎你的光临
name 存储了多少个字符? 6

scanf() 会自动在字符串后面加上空字符。
scanf() 只读取了 Victor 它在遇到空格、制表符、换行符的时候会停止。所以 scanf() 只能读取一个单词。

长度

sizeof() 是以字节为单位给出对象的大小。

strlen() 能得到字符串中的字符长度,注意它会忽略字符串最后一个空字符。

一个字节存储一个字符。

二 常量

明示定义

C 预处理器可以定义常量:

#define PI = 3.1415926

这样的定义也称为明示定义。

程序编译时,会把 PI 替换为 3.1415926, 这叫编译时替换。

const 限定符

const int YEAR_DAY = 365;

const 限定变量为只读。

#include <limits.h> limits.h 中定义了一些明示常量。

三 类型转换

自动类型转换

    char ch;
    int I;
    float fl;
    fl = i = ch = 'C';
    printf("ch = %c,i = %d,fl = %2.2f\n", ch, i, fl);
    ch = ch + 1;
    i = fl + 2 * ch;
    fl = 2.0 * ch + I;
    printf("ch = %c,i = %d,fl = %2.2f\n", ch, i, fl);
    ch = 1107;
    printf("Now ch = %c\n", ch);
    ch = 80.89;
    printf("Now ch = %c\n", ch);
ch = C,i = 67,fl = 67.00
ch = D,i = 203,fl = 339.00
Now ch = S
Now ch = P

强制类型转换

强制类型转换符: 圆括号和它扩起来的类型。

 float test = 1.234F;
    printf("%f, 强制转换为 int:%d", test, (int)test);
1.234000, 强制转换为 int:1

四 循环

while

    printf("循环开始---\n");
    int a = 0;
    while (a < 10) {
        a++;
        if (a % 2 == 0) {
            continue;
        }
        printf("%d ", a);
        if (a > 8) {
            break;
        }
    }
    printf("\n循环结束--\n");
循环开始---
1 3 5 7 9 
循环结束--

for

   for (int i = 0; i < 10; ++i) {
        printf("%d", i);
   }

do while

    int i = 0;
    do {
        ++I;
    } while (i < 10);

五 分支

    int i1 = 101;
    if(i1 > 100){
        printf("大于100 %d", i1);
    } else if (i1 > 50) {
        printf("大于50 %d", i1);
    } else {
        printf("小于 50");
    }

六 ctype.h

函数名 如果是下列参数时,返回值为真
isalnum() 字母数字(字母或数字)
isalpha() 字母
isblank() 标准的空白字符(空格、水平制表符或换行符)或任何其他本地化指定为空白的字符
iscntrl() 控制字符,如Ctrl+B
isdigit() 数字
isgraph() 除空格之外的任意可打印字符
islower() 小写字母
isprint() 可打印字符
ispunct() 标点符号(除空格或字母数字字符以外的任何可打印字符)
isspace() 空白字符(空格、换行符、换页符、回车符、垂直制表符、水平制表符或其他本地化定义的字符)
isupper() 大写字母
isxdigit() 十六进制数字符
函数名 行为
tolower() 如果参数是大写字符,该函数返回小写字符;否则,返回原始参数
toupper() 如果参数是小写字符,该函数返回大写字符;否则,返回原始参数

七 条件运算符

    int i2 = 2;
    int i3 = i2 > 5 ? 1 : -1;
    printf("%d", i3);  // -1

八 switch

    int i4 = 2;
    switch(i4){
        case 1:
            printf("我是1");
            break;
        case 2:
            printf("我是1");
            break;
        default:
            printf("我是谁");
            break;
    }

九 指针简介

是一个值为内存地址的变量(或数据对象)。

地址运算符 &

&后面跟一个变量,会得到该变量的地址。
比如 &name 表示 name 的地址。

地址运算符 *

后跟一个指针名或地址时,*给出储存在指针指向地址上的值。

int *pi;//pi是指向int类型变量的指针
char *pc;//pc是指向char类型变量的指针
float *pf,*pg;//pf、pg都是指向float类型变量的指针。
#include<stdio.h>
void interchange(int*u,int*v);
int main(void){
    int x=5,y=10;
    printf("Originally x=%d and y=%d.\n",x,y);
    interchange(&x,&y); //把地址发送给函数             
    printf("Now x=%d and y=%d.\n",x,y);
    return 0;
}
void interchange(int*u,int*v){
    int temp;
    temp=*u;//temp获得u所指向对象的值
    *u=*v;
    *v=temp;
}

相关文章

  • 重温C语言(3)之基础语法一笔过

    原文:https://mp.weixin.qq.com/s/hhkKIc_0LghYLhdhFZzQgg 重温不是...

  • Java程序设计4.28 1-1到1-5

    导学 基础知识,先学C语言,第一章会比较快速会把基础语法过一遍,对C语言语法进行复习 本章主要内容 面向对象程序设...

  • 2018/07/16

    c语言语法基础,今天07/17顺序,分支等语法。

  • 如何学习零基础学习C语言

    C语言免费教学课程推荐:零基础C语言学习教程 (本课程主要讲解C语言的语法以及项目实战,以掌握C语言的语法和编程应...

  • Java学习笔记1

    Java基础 1、Java简介 主要特性: Java语言是简单的:Java语言的语法与C语言和C++语言很接近,使...

  • iOS开发初学者学习路线

    基础C语言基本语法、Objective-C基本语法面向对象特性(类、对象、继承、多态、动态类型、动态绑定)协议(P...

  • 01---Objective-C简介

    Objective-C是基于C语言的.a. 在C语言的基础之上新增了面向对象的语法.b. 将C语言中复杂的、繁琐的...

  • Swift的switch用法扩展(下篇)

    接上一篇文章Swift的switch基础语法,与C语言有哪些不同?,上一篇主要讲针对c语言中switch语法的弊端...

  • 大牛查漏补缺 -- C语言注意点

    前言:C语言是Java、Objective-C、C++等高级语言的基础、也是跨平台开发的基础,指针是C语言的重中之...

  • iOS工程师培训方案(绝密)

    我公司iOS工程师依然采用主流的稳定语言objective-C,是C语言的衍生语言,需要一些C语言的基础,故语法篇...

网友评论

      本文标题:重温C语言(3)之基础语法一笔过

      本文链接:https://www.haomeiwen.com/subject/xedgxhtx.html