Unutterly stupid mistake with char const *
This commit is contained in:
		@@ -191,8 +191,6 @@ int main() {
 | 
			
		||||
 | 
			
		||||
Запись `const char *` значит, что мы вправе менять указатель, но не вправе менять то, что лежит под ним.
 | 
			
		||||
 | 
			
		||||
Запись `char const *` наоборот. А `const char const *` самая сильная из них.
 | 
			
		||||
 | 
			
		||||
[Здесь][rt-lt] подробно описано, как читать такие объявления.
 | 
			
		||||
 | 
			
		||||
**Null-terminated strings**. В языке Си есть конвенция отождествлять строку с последовательностью байт, которая заканчивается на `0`
 | 
			
		||||
@@ -204,8 +202,6 @@ int main() {
 | 
			
		||||
size_t
 | 
			
		||||
my_strlen(const char *s)
 | 
			
		||||
{ 
 | 
			
		||||
    // const char * означает, что мы вправе менять указатель, но
 | 
			
		||||
    // но не вправе менять то, что лежит под ним
 | 
			
		||||
    size_t len = 0;
 | 
			
		||||
    while (*s++) {
 | 
			
		||||
        len++;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user