[Язык C - первое понимание языка C (2)]


предисловие

Продолжите содержание обучения предыдущей статьи. Эта статья по-прежнему является кратким обзором основного содержания языка C.

4. Строка + escape-символ + комментарий

4.1 Строки

Одинарные кавычки должны использоваться для определения одного символа, и только один символ может содержаться в одинарной кавычке, а %c может использоваться для выходного символа.

char ch1 = 'abc';//错误的
char ch2 = 'c';//正确
//输出字符用%c
printf("%c\n", ch1);
printf("%c\n", ch2);

Нажмите ctrl+F5, чтобы запустить программу, и вывод будет следующим:
вставьте сюда описание изображения
Мы обнаружили, что вывод ch1 не является воображаемым abc.
ч2 правильно. Таким образом, одинарные кавычки могут определять только один символ.
Несколько символов вместе представляют собой строки. Например, чтобы определить строку abc, ее необходимо заключить в двойные кавычки. arr[] представляет собой массив, и в скобках нельзя указывать числа. Выходная строка представлена ​​как %s. Его также можно записать в форме одинарных кавычек ниже.

char arr1[] = "bit";

вставьте сюда описание изображения

Обратите внимание, что при изучении строк:
конец строки — управляющий символ \0. При вычислении длины строки \0 является конечным знаком и не считается содержимым строки. Строковый ввод также может быть записан в форме одинарных кавычек следующим образом, например вывод arr3[ ] и arr4[ ]:

char arr3[] = {
    
     'b','i','t' };
char arr4[] = {
    
     'b','i','t','\0'};

Сравнивая результаты вывода, обнаруживается, что результаты вывода arr1[ ] и arr4[ ] одинаковы, но arr3[ ] искажены.
вставьте сюда описание изображения
Для анализа причины необходимо понаблюдать за изменением строковых переменных arr1[ ], arr3[ ] и arr4[ ] в программе.
В интерфейсе программы нажимаем на клавиатуре F10 , программа входит в отладку, в интерфейсе отобразится отладка, нажимаем отладка-окно-мониторинг-мониторинг 1 , см. рисунок ниже

вставьте сюда описание изображения
Введите arr1, arr3, arr4 в окне мониторинга ниже, затем нажмите Enter или нажмите на пустое место. Желтая стрелка показывает, где программа работает и отлаживается.
вставьте сюда описание изображения

Затем нажмите F11, программа начнет пошаговую отладку , и строковые переменные будут случайными до того, как они будут инициализированы.
вставьте сюда описание изображения
Продолжайте нажимать F11 , после инициализации вы увидите, что значения трех переменных были присвоены.
вставьте сюда описание изображения
Щелкните маленький треугольник рядом с ним, отобразится конкретное содержимое переменной, и вы будете удивлены, обнаружив, что кажется, что все три являются битами входной строки, но результаты очень разные.Оба arr1 и arr4 заканчиваются на символ '\0'. Не в arr3.
вставьте сюда описание изображения
arr1 использует двойные кавычки для ввода строки, а конец по умолчанию содержит конечный символ '\0'; ввод arr3 недоступен; arr4 добавляется активно. Вывести одновременно три строки и их длины:
так как arr1 и arr4 имеют в конце конечный символ '\0' , то строка заканчивается, выходное значение битовое, а длина 3 символа.
arr3 не имеет конечного символа '\0' в конце , поэтому в памяти будут какие-то случайные значения, в конце которых я не знаю, что это такое, поэтому вывод искажен, а длина 15 неправильная, и я не знаю, что скрывается за хвостом.
вставьте сюда описание изображения
вставьте сюда описание изображения
Поэтому при вводе строк рекомендуется использовать двойные кавычки.

4.1 Экранирующие символы

Чтобы распечатать каталог на экране: c:\code\test.c

int main()
{
    
    
	printf("c:\code\test.c\n");
	return 0;
}

вставьте сюда описание изображения
Его следует изменить на следующий вид

printf("c:\\code\test.c\\n");
int main()
{
    
    
	printf("%c\n", '\'');//在屏幕上打印一个单引号'
	printf("%s\n", "\"");//在屏幕上打印一个字符串,字符串的内容是一个双引号“
	return 0;
}

Запустите следующую программу, чтобы вывести длину строки

#include <stdio.h>
int main()
{
    
    
printf("%d\n", strlen("abcdef"));
// \62被解析成一个转义字符
printf("%d\n", strlen("c:\test\628\test.c"));
return 0;
}

вставьте сюда описание изображения
Здесь, согласно упомянутому выше методу наблюдения за переменными, можно отчетливо наблюдать изменение строковой переменной arr, которая содержит 14 символов, длина 14, а в конце включен конечный символ '\0', что скрыто и не считается символьным содержимым, это просто означает конец строки.
вставьте сюда описание изображения

5. Примечания

  • Ненужный код в коде можно удалить сразу или закомментировать
  • Некоторый код в коде сложнее понять, можно добавить текст комментария
int add(int x, int y)
{
    
    
	return x - y;
}
/*C语言风格的注释
int add(int x, int y)
{
	return x - y;
}*/

int main()
{
    
    
	//C++注释风格
	//int a = 10;
	//调用add函数,完成加法
	printf("%d\n", add(1,2));

	return 0;
}

6. Выберите заявление

Если вы будете усердно учиться, получите хорошее предложение при приеме на работу, и вы достигнете вершины своей жизни.
Если вы не учитесь, окончание учебы равняется безработице, и вы идете домой и продаете сладкий картофель.
Это выбор!

int main()
{
    
    
	int coding = 0;
	printf("你会去敲代码吗?\n");
	printf("选择1 or 0)");
	scanf("%d", &coding);
	if(coding == 1)
	{
    
    
		prinf("坚持,你会有好offer\n");
	}
	else
	{
    
    
		printf("放弃,回家卖红薯\n");
	}
	return 0;
}

7, оператор цикла

Оператор, многократно выполняемый в языке C, представляет собой цикл, который имеет три формы:

  • пока заявление
  • для заявления
  • делать ... в то время как заявление

Ниже приведен пример цикла while, два других цикла будут обновлены позже.

int main()
{
    
    
	printf("加入大厂\n");
	int line = 0;
	while(line<=20000)
	{
    
    
		line++;
		printf("我要继续努力敲代码\n");
	}
	if(line>20000)
		printf("好offer\n");
	return 0;
}

8. Функция

Ниже приведена простая сумма двух входных целых чисел и ее вывод. Метод записи перед изучением функции:

int main()
{
    
    
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	printf("输入两个操作数:>");
	scanf("%d %d", &num1, &num2);//输入函数
	sum = num1 + num2;
	printf("sum = %d\n", sum);
	return 0;
}

После того, как оператор сложения написан как функция, особенность функции заключается в упрощении кода и повторном использовании кода:

int Add(int x, int y)//加法的函数定义
{
    
    
	int z = x+y;
	return z;
}
int main()
{
    
    
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	printf("输入两个操作数:>");
	scanf("%d %d", &num1, &num2);
	sum = Add(num1, num2);//调用函数
	printf("sum = %d\n", sum);
	return 0;
}

9. Массив

Язык C предусматривает, что каждый элемент массива имеет индекс, и индекс начинается с 0. Доступ к массивам можно получить с помощью подписки.
Следующее определяет массив arr1[10], содержащий 10 элементов, все инициализированы равными 0. Диапазон индексов 0-9.

int arr1[10] = {
    
    0};//定义了一个包含10个元数的数组,初始化都为0
///如果数组10个元素,下标的范围是0-9

вставьте сюда описание изображения

int main()
{
    
    
	
	int i = 0;
	
	int arr[10] = {
    
    1,2,3,4,5,6,7,8,9,10};
	for(i=0; i<10; i++)//for循环打印数组中的10个元数
	{
    
    
		printf("%d ", arr[i]);
	}
	printf("\n");
	return 0;
}

Подведем итог

Базовое содержание языка C еще не закончено.В этой статье в основном хотят представить простую функцию отладки VS2017 и отслеживать изменения переменных в окне, что очень полезно для последующего изучения сложных программ.

Программа F10 входит в интерфейс отладки Одноэтапная отладка
F11
shift+f11 для завершения отладки

рекомендация

отblog.csdn.net/taibudong1991/article/details/123708243
рекомендация